import { defineStore } from "pinia"
import { ErrorType } from "@/components/error/typeing"

interface IShowEmpty{
    [key:string]:boolean
}

interface IState {
    /** 是否显示空状态 */
    showEmpty:IShowEmpty,
    /** 空状态标题 */
    emptyTitle:string,
    /** 空状态图标 */
    emptyType:string
}

// 对外部暴露一个 use 方法，该方法会导出我们定义的 state
export const useErrorStore = defineStore({
    // 每个 store 的 id 必须唯一
    id: 'error',
    // state 表示数据源
    state: (): IState => ({
        showEmpty:{},
        emptyTitle:"无数据",
        emptyType:ErrorType.def
    }),
    // getters 类似于 computed，可对 state 的值进行二次计算
    getters: {

    },
    // actions 用来修改 state
    actions: {
        setShowEmpty(bol:boolean,name:string,title?:string,type?:ErrorType){
            this.showEmpty[name] = bol
            this.emptyTitle = title ?? "无数据"
            if(type){
                this.emptyType = ErrorType.def
            }
        },
    },
})